/**
 * @file     isUgly.ts
 * @brief    [263. 丑数](https://leetcode.cn/problems/ugly-number/description/)
 * @author   Zhu
 * @date     2022-11-05 22:35
 */

// n = 2^a + 3^b + 5^c 则 n为丑数

// 递归
function isUgly(n: number): boolean {
    if (n < 1) return false;
    if (n === 1) return true;
    if (n % 5 === 0) return isUgly(n / 5);
    if (n % 3 === 0) return isUgly(n / 3);
    if (n % 2 === 0) return isUgly(n / 2);
    return false;
}

// 迭代
function isUgly(n: number): boolean {
    if (n < 1) return false;
    while (n > 1) {
        if (n % 5 === 0) n = n / 5;
        else if (n % 3 === 0) n = n / 3;
        else if (n % 2 === 0) n = n / 2;
        else if (n > 1) return false;
    }
    return true;
}
